package com.djinfo.work.util.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContextEvent;

/**
 * Created by lenovo on 2017/4/17.
 */
public class InitListener  implements javax.servlet.ServletContextListener {


    public void contextDestroyed(ServletContextEvent arg0) {

    }


    public void contextInitialized(ServletContextEvent event) {
        WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());

        System.out.println("***********************************************8");
        //通过schedulerFactory获取一个调度器
        SchedulerFactory schedulerfactory=new StdSchedulerFactory();
        Scheduler scheduler=null;
        try{
//		通过schedulerFactory获取一个调度器
            scheduler=schedulerfactory.getScheduler();

//		 创建jobDetail实例，绑定Job实现类
//		 指明job的名称，所在组的名称，以及绑定job类
            JobDetail job= JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();


//		 定义调度触发规则

//		使用simpleTrigger规则
//		  Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
//				          .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))
//				          .startNow().build();
//		使用cornTrigger规则  每天10点42分
            Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
                    .withSchedule(CronScheduleBuilder.cronSchedule("59 8 * * * ?"))
                    .startNow().build();

//		 把作业和触发器注册到任务调度中
            scheduler.scheduleJob(job, trigger);

//		 启动调度
            scheduler.start();


        }catch(Exception e){
            e.printStackTrace();
        }


       /* SystemService systemService = (SystemService) webApplicationContext.getBean("systemService");
        MenuInitService menuInitService = (MenuInitService) webApplicationContext.getBean("menuInitService");

        *//**
         * 第一部分：对数据字典进行缓存
         *//*
        systemService.initAllTypeGroups();



        *//**
         * 第二部分：自动加载新增菜单和菜单操作权限
         * 说明：只会添加，不会删除（添加在代码层配置，但是在数据库层未配置的）
         *//*
        if("true".equals(ResourceUtil.getConfigByName("auto.scan.menu.flag").toLowerCase())){
            menuInitService.initMenu();
        }*/

    }

}

